/*Imports das funcionalidades que serão usadas no mapa
 * chamadas dojo*/
require([
    /*Importação da funcionalidade de legenda*/
    "esri/map",
    "esri/dijit/Legend",
    "esri/Color",
    "esri/renderers/ClassBreaksRenderer",
    "esri/symbols/SimpleFillSymbol",
    "esri/InfoTemplate",
    "esri/layers/FeatureLayer",
    "dojo/domReady!"
], function(
        Map,
        Legend,
        Color,
        ClassBreaksRenderer,
        SimpleFillSymbol,
        InfoTemplate,
        FeatureLayer
        ) {
    init_mapEsri = function() {


        /*Função principal que inicia o mapa*/


//        /*Criação do mapa com seus parametros: mapabase, cordenadas da visão, e zoom*/
        map_esri = new Map("map_esri", {
            basemap: "streets",
            center: [-98.215, 38.382],
            zoom: 5
        });

        /*Função que carrega todos os controles do mapa*/
        init_controlsEsri();
        /*Função que carrega o controle de desenho*/
        drawFeatureControl();

        //Legend
        /*Adiciona evento ao mapa, ao adicionar nova camada. Chama a função
         * responsável por criar a legenda*/
        map_esri.on("layers-add-result", createLegend);
        /*Função responsável por criar a legenda*/
        function createLegend(results) {
            /*Cria um novo objeto de legenda, com seus parametros*/
            legend = new Legend({
                layerInfos: [{
                        layer: results.layers[0].layer,
                        title: " "
                    }],
                map: map_esri
            }, "legend");

        }
        //fim legend




        /*Cria simbolo e atribui uma cor a ela*/
        var symbol = new SimpleFillSymbol();
        symbol.setColor(new Color([156, 150, 150, 0.5]));

        /*Objeto de renderização*/
        var renderer = new ClassBreaksRenderer(symbol, "POP07_SQMI");
        renderer.addBreak(0, 25, new SimpleFillSymbol().setColor(new Color([56, 168, 0, 0.5])));
        renderer.addBreak(25, 75, new SimpleFillSymbol().setColor(new Color([139, 209, 0, 0.5])));
        renderer.addBreak(75, 175, new SimpleFillSymbol().setColor(new Color([255, 255, 0, 0.5])));
        renderer.addBreak(175, 400, new SimpleFillSymbol().setColor(new Color([255, 128, 0, 0.5])));
        renderer.addBreak(400, Infinity, new SimpleFillSymbol().setColor(new Color([255, 0, 0, 0.5])));

        /*Ativa informação da camada*/
        var infoTemplate = new InfoTemplate("${NAME}", "${*}");
        featureLayer = new FeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3", {
            mode: FeatureLayer.MODE_SNAPSHOT,
            outFields: ["*"],
            infoTemplate: infoTemplate
        });
        /*Filtra estado amaericano de acordo com nome*/
        featureLayer.setDefinitionExpression("STATE_NAME = 'TEXAS'");
        featureLayer.setRenderer(renderer);

        map_esri.addLayers([featureLayer]);

        featureLayer.setVisibility(false);
        // }
    };
});
